Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Be/refactor/#582 로거 공통 패키지로 분리 #583

Merged
merged 11 commits into from
Feb 28, 2024

Conversation

kimyu0218
Copy link
Collaborator

@kimyu0218 kimyu0218 commented Feb 27, 2024

🔮 resolved #582

변경 사항

로거 관련 코드 공통 패키지로 분리

고민과 해결 과정

wassignal 서비스는 백엔드 서비스지만 별도의 프로젝트로 분리되어있다. wassignal 모두 오류 추적 및 유지보수를 위해 로거를 사용하고 있지만, 공통 패키지를 사용하지 않아 코드를 중복해서 사용하고 있다.

이를 해결하기 위해 로거를 별도의 프로젝트로 분리하고, 이를 was, signal 서비스에서 재사용하는 방식으로 구현했다.

1️⃣ workspaces

workspaces는 npm 버전7 이상에서 사용할 수 있는 기능으로, 여러 패키지를 하나의 최상위 패키지에서 관리하는 기능을 제공한다.

{
  "workspaces": ["packages/*"]
}

2️⃣ 공통 패키지 작성

공통 패키지들은 packages 하위에 저장된다. 로거 코드를 옮긴 후 package.json을 작성하여 빌드 결과물을 export 한다.

{
  "name": "winston-logger",
  "private": true,
  "exports": {
    ".": "./dist/index.js"
  },
  "scripts": {
    "build": "tsc"
  },
  // 중략
}

Note

공통적으로 사용되는 라이브러리들을 최상위 디렉토리로 빼서 다시 install 해줘야 해!
최상위 디렉토리에서 아래 명령어 실행하고, was, signal, frontend 다시 install 하면 돼

npm install
npm run link:logger

(선택) 테스트 결과

workspaces 속성을 이용하여 여러 패키지를 관리하도록 리팩토링
- was, signal 서비스에서 같은 로거를 사용
- packages 하위에 로거를 정의하고 사용하도록 수정
- was와 signal 서비스에서 같은 로거를 사용함
- 같은 코드가 서로 다른 위치에 중복으로 정의되었으므로 공통 라이브러리로
  분리
최상위 디렉토리에서 설치했으므로 하위 디렉토리에 또 다시 설치할 필요
없음
- 공통 패키지와 관련된 내용은 최상위 package.json에 기록되어 있음
- 해당 파일을 app 하위에 복사하여 이미지가 코드를 찾을 수 있도록 수정
최상위 디렉토리에서 공용 패키지를 빌드하고, dev를 실행할 수 있도록 스크립트 작성
@kimyu0218 kimyu0218 marked this pull request as ready for review February 28, 2024 03:55
@Doosies
Copy link
Collaborator

Doosies commented Feb 28, 2024

오오... 프론트도 나중에 이런부분 패키지로 따로 빼면 좋겠다👍

@kimyu0218 kimyu0218 merged commit cfe31a3 into dev Feb 28, 2024
1 check failed
@kimyu0218 kimyu0218 deleted the BE/refactor/#582-로거-공통-패키지로-분리 branch February 28, 2024 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

🔄 로거 공통 패키지로 분리
3 participants